【迁移】单实例环境使用数据泵(Data Pump)数据迁移

您所在的位置:网站首页 Ora 39082 【迁移】单实例环境使用数据泵(Data Pump)数据迁移

【迁移】单实例环境使用数据泵(Data Pump)数据迁移

#【迁移】单实例环境使用数据泵(Data Pump)数据迁移| 来源: 网络整理| 查看: 265

生产上遇到Oracle 11g单实例跨平台迁移情况,以下为迁移过程,有不完善的地方欢迎提出改进

一、源库及目标库情况

源库

目标库

IP

10.0.15.XX

10.0.16.XXX

系统版本

windows 2008

CentOS Linux release 7.6.1810 (Core)

数据库版本

11.2.0.4.0

11.2.0.4.181016 (28204707)

内存GB

64

32

数据量GB

30

二、迁移方案

源库未开启归档,采用数据泵方式迁移。

三、迁移流程1、确定业务停机时间

系统管理员与业务确认可停机时间范围,数据库运维通过计算业务数据量,预估迁移耗时,两者结合综合评估后共同确定迁移时间

2、通知系统开发商停业务

数据库运维做好迁移前准备后,通知系统开发商停业务系统

3、关闭所有业务

系统开发商关闭所有业务系统

4、源库停数据库监听程序

数据库运维收到开发商停完业务的通知后,关闭数据库监听程序,拒绝新的连接请求

--查看监听状态 lsnrctl status --关闭监听程序 lsnrctl stop --检查监听状态 lsnrctl status5、源库查询除非系统默认用户

目的是一会impdp导入时,按照查出的用户导入,not in()中为11g默认用户

select username from dba_users where username not in('SYS','SYSTEM','SCOTT','OUTLN','MGMT_VIEW','FLOWS_FILES','MDSYS','ORDSYS','EXFSYS','DBSNMP','WMSYS','APPQOSSYS','APEX_030200','OWBSYS_AUDIT','ORDDATA','CTXSYS','ANONYMOUS','SYSMAN','XDB','ORDPLUGINS','OWBSYS','SI_INFORMTN_SCHEMA','OLAPSYS','ORACLE_OCM','XS$NULL','MDDATA','DIP','APEX_PUBLIC_USER','SPATIAL_CSW_ADMIN_USR','SPATIAL_WFS_ADMIN_USR');6、源库检查会话是否全部释放

数据库运维检查数据库会话是否全部释放掉,是否有未停干净的业务,并检查未提交的二阶段事物,如发现异常及时通知系统开发商处理

--查询status 为 INACTIVE的会话 select SID,SERIAL#,username,status from v$session where username in ('用户名1','用户名2'); --杀死进程 alter system kill session 'sid,serial#';7、源库切换日志

数据库运维进行归档日志切换,将所有内存中的数据刷到磁盘,保障数据完整性。首先要查询日志组状态,将active及current状态的日志组,都要切换到inactive一次,建议多次切换。(见异常处理-2)

--查询avtive状态日志组 select * from v$log; --切换日志组,直达avtive变为inactive,可多切换几次 alter system switch logfile; --注:此处无需做手工CheckPoint8、核对源库与目标库字符集是否一致select userenv('language') from dual;9、源库导出数据

查看dump目录

select * from dba_directories;

无dump目录创建

--创建目录 create or replace directory mydump as '/u01/temp'; --授权 grant read, write on directory mydump to 用户名;

检查dump目录存储空间,评估DMP文件大小

--方式一:通过block大小去估算,默认 expdp \'/ as sysdba\' ESTIMATE_ONLY=y schemas=用户名 ESTIMATE=blocks; --方式二:通过统计信息去估算 expdp \'/ as sysdba\' ESTIMATE_ONLY=y schemas=用户名 ESTIMATE=statistics;

sys用户执行全库导出

--注意parallel参数需要考虑CPU核心数,另可使用filesize参数设置导出单个文件大小 expdp \"/ as sysdba\" directory=mydump dumpfile=YKT-FULL_%U.DMP parallel=4 logfile=YKT-FULL.log full=y;

==注意:

1、11g有“延迟段创建”特性,参数:deferred_segment_creation。如果设置为true,则expdp不会导出空表。参考:https://www.cnblogs.com/ningvsban/p/3603897.html

2、执行导出导入过程中可以通过dba_datapump_jobs查看执行中的job

3、归档模式下导入会产生大量归档日志,要注意磁盘空间==

10、使用FileZilla工具将备份传输到目标库dump目录下

dump目录相关见步骤9

11、删除目标库测试数据

由于之前导入过测试数据,需要正式迁移前删除,步骤5中已经查出所有非系统默认用户

--CASCADE参数会删除用户所有关联对象 DROP USER 用户名 CASCADE;

注意:impdp导入前需要先创建表空间,用户可以不用创建,已验证

参考:http://blog.itpub.net/31520497/viewspace-2156830/

--在源库查询,在目标库create tablespace SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.tablespace_name GROUP BY t.tablespace_name; 12、执行导入

导入前将目标库监听关闭,分别按schema导入,全库导入由于元数据已在目标库存在会报对象已存在错误

impdp \"/ as sysdba\" directory=ENMO_DUMPDIR dumpfile=YKT-FULL_%U.DMP parallel=4 logfile=impdp_xk.log schemas=用户名;13、校验数据

对比dba_objects表数量

select count(1) from dba_objects;

查询每个表行数,对比源库目标库

--查询数据库所有的表 select t.table_name,t.num_rows from all_tables t; --查询当前用户表 select t.table_name,t.num_rows from user_tables t;14、检查迁移后表空间容量

对空间不足的表空间需要reseize

alter database datafile 'XXXXXXX' resize 10G;15、对比源库与目标库用户权限

通过脚本

16、目标库启动监听17、通知系统开发商启业务18、启动系统服务19、测试业务20、数据库运维收尾结束

数据库运维更新防火墙策略,通知主机添加堡垒机

四、异常处理1、impdp报ORA-39082

导入过程中报错

ORA-39082: Object type PACKAGE_BODY:"XXXX"."PXG_TS_LEAING" created with compilation warnings

通过以下SQL查询到状态为INVALID,忽略

select owner,object_name,object_type,status from dba_objects where object_name='PXG_TS_LEAING';2、切换日志,一直无法变为inactive状态

首先查询dba_jobs与dba_jobs_running表,查询job情况

select * from dba_jobs select * from dba_jobs_running

尝试broken job,失败

exec DBMS_JOB.broken(49,TRUE);

最后通过设置job_queue_processes=0解决,日志可以成功切换inactive状态

参考:https://blog.csdn.net/leshami/article/details/8694772

show parameter job alter system set job_queue_processes=0;3、源库expdp报错

使用powershell导出报错,使用cmd窗口解决

五、总结

1、迁移前务必在测试环境完整测试

2、impdp导入日志一定要留存完整

3、源库expdp前要保证所有数据落盘

4、对于数据泵、JOB等内容深入学习

5、细心谨慎



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3